package com.itheima.homeweek;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class HomeWeek05 {   /*定义任意字符串数组
    统计该数组中所有字符出现的次数，将统计结果输出到当前模块下 count.txt文件中
    举例：
    String[] str = {"hello","world","java","heiheiheippp"};
    count.txt:
        h:4
        e:4
        l:3
        o:2
        w:1
        r:1
        d:1
        j:1
        a:2
        i:3
        v:1
    提示： 在输出的内容后面加入：\r\n 就有换行效果*/
    public static void main(String[] args) throws IOException {
        Map<Character, Integer> map = new HashMap<>();
        String[] str = {"hello", "world", "java", "heiheihei"};//初始化字符数组
        for (String s : str) {//暂时不考虑空字符串数组
            char[] chars = s.toCharArray();//将每个字符串转为字符数组
            for (char ch : chars) {//字符数组遍历
                if (map.containsKey(ch)) {//map集合键中包含该字符则值值位置加1
                    map.put(ch, map.get(ch) + 1);
                } else {
                    map.put(ch, 1);//map集合键中不包含该字符则值值位置初始化为1
                }
            }
        }
        System.out.println(map);//控制台查看map

        //创建输出流对象
        FileOutputStream fos = new FileOutputStream("day014\\count.txt");//目录
        //写入操作
        Set<Character> keySet = map.keySet();
        for (Character ch : keySet) {
            fos.write(ch);//写map的键
            fos.write(58);//写:
            String s =map.get(ch)+"";//将Integer转为String型
            fos.write(s.getBytes());//将String转为byte[]数组
            fos.write("\r\n".getBytes());//换行

        }
        //关闭资源
        fos.close();
    }
}
